package com.zzg.demo.laboratory.deferred;

import org.apache.catalina.connector.Connector;
import org.springframework.boot.web.embedded.tomcat.TomcatServletWebServerFactory;
import org.springframework.boot.web.server.WebServerFactoryCustomizer;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration
public class TomcatConfig {

//    /**
//     * 通过代码配置Tomcat参数
//     * @return
//     */
//    @Bean
//    public WebServerFactoryCustomizer<TomcatServletWebServerFactory> customizer() {
//        /**
//         * 以下配置等同于在application.properties中配置：
//         * server.tomcat.threads.max=1
//         * server.tomcat.max-connections=10000
//         * server.tomcat.connection-timeout=20000
//         * server.tomcat.accept-count=100
//         */
//        return factory -> factory.addConnectorCustomizers((Connector connector) -> {
//            // 设置最大线程数为1，即Tomcat最多同时处理1个请求。这样就可以看出普通的SpringMVC请求和使用了DeferredResult的请求的区别
//            connector.setProperty("maxThreads", "1");
//            // 设置最大连接数
//            connector.setProperty("maxConnections", "10000");
//            // 设置连接超时时间
//            connector.setProperty("connectionTimeout", "20000");
//            // 设置队列大小为0
//            connector.setProperty("acceptCount", "100");
//        });
//    }
}